#include "config.h"
#include "gdkeventsource.h"
-#include "gdkdevicemanager-broadway.h"
+#include "gdkseat.h"
#include "gdkinternals.h"
#include "gdkframeclockprivate.h"
{
GdkDisplay *display;
GdkBroadwayDisplay *display_broadway;
- GdkBroadwayDeviceManager *device_manager;
+ GdkSeat *seat;
GdkWindow *window;
GdkEvent *event = NULL;
GList *node;
g_assert (display != NULL);
display_broadway = GDK_BROADWAY_DISPLAY (display);
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- device_manager = GDK_BROADWAY_DEVICE_MANAGER (gdk_display_get_device_manager (display));
- G_GNUC_END_IGNORE_DEPRECATIONS;
+ seat = gdk_display_get_default_seat (display);
switch (message->base.type) {
case BROADWAY_EVENT_ENTER:
event->crossing.state = message->pointer.state;
event->crossing.mode = message->crossing.mode;
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
event->crossing.state = message->pointer.state;
event->crossing.mode = message->crossing.mode;
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
event->motion.x_root = message->pointer.root_x;
event->motion.y_root = message->pointer.root_y;
event->motion.state = message->pointer.state;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
event->button.y_root = message->pointer.root_y;
event->button.button = message->button.button;
event->button.state = message->pointer.state;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
event->scroll.x_root = message->pointer.root_x;
event->scroll.y_root = message->pointer.root_y;
event->scroll.direction = message->scroll.dir == 0 ? GDK_SCROLL_UP : GDK_SCROLL_DOWN;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
event->touch.y_root = message->touch.root_y;
event->touch.state = message->touch.state;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_source_device (event, device_manager->touchscreen);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ {
+ GList *devices;
+ devices = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_TOUCH);
+ if (devices)
+ gdk_event_set_source_device (event, GDK_DEVICE (devices->data));
+ g_list_free (devices);
+ }
+ gdk_event_set_seat (event, seat);
if (message->touch.is_emulated)
gdk_event_set_pointer_emulated (event, TRUE);
event->key.hardware_keycode = message->key.key;
gdk_event_set_scancode (event, message->key.key);
event->key.length = 0;
- gdk_event_set_device (event, device_manager->core_keyboard);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_keyboard));
+ gdk_event_set_device (event, gdk_seat_get_keyboard (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
break;
case BROADWAY_EVENT_GRAB_NOTIFY:
case BROADWAY_EVENT_UNGRAB_NOTIFY:
- _gdk_display_device_grab_update (display, device_manager->core_pointer, device_manager->core_pointer, message->base.serial);
+ _gdk_display_device_grab_update (display, gdk_seat_get_pointer (seat), gdk_seat_get_pointer (seat), message->base.serial);
break;
case BROADWAY_EVENT_CONFIGURE_NOTIFY:
event = gdk_event_new (GDK_FOCUS_CHANGE);
event->focus_change.window = g_object_ref (window);
event->focus_change.in = FALSE;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
}
event = gdk_event_new (GDK_FOCUS_CHANGE);
event->focus_change.window = g_object_ref (window);
event->focus_change.in = TRUE;
- gdk_event_set_device (event, device_manager->core_pointer);
- gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+ gdk_event_set_device (event, gdk_seat_get_pointer (seat));
+ gdk_event_set_seat (event, seat);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
}